// pages/products/products.js
const { apiService } = require('../../utils/api')
const { showSuccess, showError, showLoading, hideLoading } = require('../../utils/util')

Page({

  /**
   * 页面的初始数据
   */
  data: {
    products: [],
    loading: false,
    hasMore: true,
    pageNum: 1,
    pageSize: 10,
    keyword: '',
    selectedTag: '',
    tags: ['全部', '手工', '编织', '饰品', '刺绣', '陶艺', '木工']
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadProducts()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 如果需要刷新数据
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.refreshProducts()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.loadMoreProducts()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '精选手工品',
      path: '/pages/products/products'
    }
  },

  /**
   * 加载手工品列表
   */
  async loadProducts() {
    if (this.data.loading) return

    this.setData({ loading: true })

    try {
      const params = {
        pageNum: this.data.pageNum,
        pageSize: this.data.pageSize
      }

      if (this.data.keyword) {
        params.keyword = this.data.keyword
      }

      if (this.data.selectedTag && this.data.selectedTag !== '全部') {
        params.tags = this.data.selectedTag
      }

      const result = await apiService.getProductsList(params)

      this.setData({
        products: this.data.pageNum === 1 ? result : [...this.data.products, ...result],
        hasMore: result.length === this.data.pageSize,
        loading: false
      })

      wx.stopPullDownRefresh()
    } catch (error) {
      this.setData({ loading: false })
      wx.stopPullDownRefresh()
      showError(error.message || '加载手工品列表失败')
    }
  },

  /**
   * 刷新手工品列表
   */
  refreshProducts() {
    this.setData({
      products: [],
      pageNum: 1,
      hasMore: true
    })
    this.loadProducts()
  },

  /**
   * 加载更多手工品
   */
  loadMoreProducts() {
    if (!this.data.hasMore || this.data.loading) return

    this.setData({
      pageNum: this.data.pageNum + 1
    })
    this.loadProducts()
  },

  /**
   * 搜索输入
   */
  onSearchInput(e) {
    this.setData({
      keyword: e.detail.value
    })
  },

  /**
   * 执行搜索
   */
  onSearch() {
    this.refreshProducts()
  },

  /**
   * 选择标签
   */
  onTagSelect(e) {
    const tag = e.currentTarget.dataset.tag
    this.setData({
      selectedTag: tag
    })
    this.refreshProducts()
  },

  /**
   * 查看手工品详情
   */
  onProductTap(e) {
    const id = e.currentTarget.dataset.id
    wx.navigateTo({
      url: `/pages/product-detail/product-detail?id=${id}`
    })
  }
})